package ch.fusun.baron.coatofarms.ui.background;

import ch.fusun.baron.coatofarms.ui.COAColor;

/**
 * @author dezanets
 *
 */
/**
 * All possible backgrounds
 */
public enum Backgrounds {
	/**
	 * 
	 */
	DiagonallyDownDivided {
		@Override
		public COABackground createLayout(COAColor color1, COAColor color2) {
			return new DiagonallyDownDividedBackground(color1, color2);
		}

	},
	/**
	 * 
	 */
	DiagonallyUpDivided {
		@Override
		public COABackground createLayout(COAColor color1, COAColor color2) {
			return new DiagonallyUpDividedBackground(color1, color2);
		}
	},
	/**
	 * 
	 */
	HorizontallyDivided {
		@Override
		public COABackground createLayout(COAColor color1, COAColor color2) {
			return new HorizontallyDividedBackground(color1, color2);
		}
	},
	/**
	 * 
	 */
	VerticallyDivided {
		@Override
		public COABackground createLayout(COAColor color1, COAColor color2) {
			return new VerticallyDividedBackground(color1, color2);
		}
	},
	/**
	 * 
	 */
	Plain {
		@Override
		public COABackground createLayout(COAColor color1, COAColor color2) {
			return new PlainBackground(color1);
		}
	};

	/**
	 * @param color1
	 *            The first color
	 * @param color2
	 *            The second color
	 * @return The appropriate background
	 */
	public abstract COABackground createLayout(COAColor color1, COAColor color2);
}
